package com.bluemobi.system.service;

import java.util.List;

import com.bluemobi.framework.base.BaseService;
import com.bluemobi.system.model.SysRole;
import com.bluemobi.system.model.SysUser;
import com.bluemobi.system.vo.RoleVo;

/**
 * 角色管理service接口
 */
public interface SysRoleService extends BaseService {

	/**
	 * 根据用户主键获取角色信息
	 *
	 * @param suId
	 *            用户主键
	 * @return SysRole
	 * @throws Exception
	 */
	RoleVo getRoleBySuId(String suId) throws Exception;

	/**
	 * 获取所有的角色
	 *
	 * @param user
	 *            用户
	 * @param isAll
	 *            是否全部
	 * @return List<SysRole>
	 * @throws Exception
	 */
	List<SysRole> getAllRole(SysUser user, boolean isAll) throws Exception;

	/**
	 * 添加角色
	 *
	 * @param role
	 *            角色
	 * @return boolean
	 * @throws Exception
	 */
	boolean saveRole(SysRole role) throws Exception;

	/**
	 * 修改角色
	 *
	 * @param role
	 *            角色
	 * @return boolean
	 * @throws Exception
	 */
	boolean updateRole(SysRole role) throws Exception;

	/**
	 * 根据主键删除角色
	 *
	 * @param roleId
	 *            角色ID
	 * @return boolean
	 * @throws Exception
	 */
	boolean delRoleByRoleId(String roleId) throws Exception;

	/**
	 * 角色权限分配(添加角色资源表数据)
	 *
	 * @param roleId
	 *            角色ID
	 * @param resIds
	 *            资源数组
	 * @return boolean
	 * @throws Exception
	 */
	boolean saveRoleRes(String roleId, String[] resIds) throws Exception;

	/**
	 * 根据主键删除角色授权资源
	 *
	 * @param roleId
	 *            角色ID
	 * @return boolean
	 * @throws Exception
	 */
	boolean delRoleAuthorize(String roleId) throws Exception;

}
